#ifndef PARAFLUIDBOUNDINGSPHERE_H
#define PARAFLUIDBOUNDINGSPHERE_H

#include "parafluidtriangle.h"
#include "parafluidvector.h"

namespace ParaFluid
{
	
	/**
	* Bounding Sphere
	*/
	class BoundingSphere
	{
		
	public:
		
		/**
		* Destructor
		*/
		~BoundingSphere();
		
		/**
		* Default Constructor
		*/
		BoundingSphere();
		
		/**
		* Copy Constructor
		*/
		BoundingSphere(const BoundingSphere & other);
		
		/**
		* Constructor with Center and Radius
		*/
		BoundingSphere(const Vector & Center, float Radius);
		
		/**
		* Constructor with Triangle
		*/
		BoundingSphere(const Triangle & triangle);
		
		/**
		* Assignment Operator
		*/
		BoundingSphere & operator= (const BoundingSphere & rhs);
		
		/**
		* Return TRUE if the specified Point is inside the Bounding Sphere
		*/
		bool contains(const Vector & point) const;
		
		/**
		* Center of the Bounding Sphere
		*/
		Vector center;
		
		/**
		* Radius of the Bounding Sphere
		*/
		float radius;
		
	};
	
}

#endif
